package com.classops.demo.di

import android.app.Application
import android.util.Log
import com.classops.demo.MainViewModel
import com.classops.demo.init.retrofitModule
import com.classops.demo.repo.UserRepository
import org.koin.android.ext.koin.androidContext
import org.koin.androidx.viewmodel.dsl.viewModelOf
import org.koin.core.context.startKoin
import org.koin.dsl.module

// TODO ViewModel Activity Fragment IService 等

fun initKoin(app: Application) {
    Log.e("Test", "initKoin")
    startKoin {
        androidContext(app)
        modules(appModule, retrofitModule)
    }
}

val appModule = module {
    factory {
        UserRepository()
    }

//    scope<ViewModel> {
//        scoped {
//            UserRepository()
//        }
//    }

    viewModelOf(::MainViewModel)
}